package com.timk.goserver.client.model;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * Class for holding player-specific game info
 * @author TKington
 *
 */
public class GamePlayerInfo implements IsSerializable {
	private int gamePlayerInfoId;
	private String name;
	private String futureMoves;
	private String notes;
	private int lastInteractiveMove;
	
	/**
	 * Just for hibernate and serialization
	 *
	 */
	public GamePlayerInfo() { /* */ }
	
	/**
	 * Creates a GamePlayerInfo
	 *
	 * @param name the player name
	 */
	public GamePlayerInfo(String name) {
		this.name = name;
		futureMoves = "";
		notes = "";
		lastInteractiveMove = -1;
	}
	
	/**
	 * Returns the future moves as a String
	 * @return the future moves as a String
	 */
	public String getFutureMoves() {
		return futureMoves;
	}
	
	/**
	 * Sets the future moves as a String
	 * @param futureMoves
	 */
	public void setFutureMoves(String futureMoves) {
		this.futureMoves = futureMoves;
	}
	
	/**
	 * Returns the number of the last interactively played move
	 * @return the number of the last interactively played move
	 */
	public int getLastInteractiveMove() {
		return lastInteractiveMove;
	}
	
	/**
	 * Sets the number of the last interactively played move
	 * @param lastInteractiveMove
	 */
	public void setLastInteractiveMove(int lastInteractiveMove) {
		this.lastInteractiveMove = lastInteractiveMove;
	}
	
	/**
	 * Returns the player's name
	 * @return the player's name
	 */
	public String getName() {
		return name;
	}
	
	/**
	 * Sets the player's name
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}
	
	/**
	 * Returns the private notes
	 * @return the private notes
	 */
	public String getNotes() {
		return notes;
	}
	
	/**
	 * Sets the private notes
	 * @param notes
	 */
	public void setNotes(String notes) {
		this.notes = notes;
	}

	/** Just for hibernate/serialization */
	int getGamePlayerInfoId() {
		return gamePlayerInfoId;
	}

	/** Just for hibernate/serialization */
	void setGamePlayerInfoId(int gamePlayerInfoId) {
		this.gamePlayerInfoId = gamePlayerInfoId;
	}
}
